#ifndef __VSDL_TOOLS_H__
#define __VSDL_TOOLS_H__

enum DataType{
	DT_16,
	DT_32,
	DT_64
};

#define InvalidPointer(ptr)	((ptr) == NULL)
#define ValidPointer(ptr)	((ptr) != NULL)

namespace VSDL_Tool{
	//====================Endianless tools==========================
	bool IsBigEndian();
	bool IsSmallEndian();
	//These two functions below don't check the host's endianless
	//actually they do the same thing
	void ToBigEndian(void *smallEndianData, enum DataType dataType);
	void ToSmallEndian(void *bigEndianData, enum DataType dataType);
	//These two function will check the host's endianless
	void HostToNet(void *data, enum DataType dataType);
	void NetToHost(void *data, enum DataType dataType);
	//Random generator using MT19937
	void Srand(unsigned long seed);
	unsigned long Rand();
}


#endif /*__VSDL_TOOLS_H__*/
